package edu.fiap.model.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import edu.fiap.util.Date;

public class Processo implements Serializable{

	private static final long serialVersionUID = -7146208821863687199L;
	
	private int nrProcesso;
	private double txContrato;
	private String dsProcesso;
	private Date dtAbertura;
	private Date dtFechamento;
	private TipoCausa tipoCausa;
	private TipoCobranca tipoCobranca;
	private Cliente cliente;
	private Forum forum;
	private List<Titulo> listaTitulos;
	private List<Advogado> advogadosEnvolvidos;
	private List<Processo>processosRelacionados = new ArrayList<Processo>();
	
	public Processo(){
	}
	public Processo(int nrProcesso){
		this.nrProcesso = nrProcesso;
	}
	
	public int getNrProcesso() {
		return nrProcesso;
	}
	public void setNrProcesso(int nrProcesso) {
		this.nrProcesso = nrProcesso;
	}
	public double getTxContrato() {
		return txContrato;
	}
	public void setTxContrato(double txContrato) {
		this.txContrato = txContrato;
	}
	public String getDsProcesso() {
		return dsProcesso;
	}
	public void setDsProcesso(String dsProcesso) {
		this.dsProcesso = dsProcesso;
	}
	public Date getDtAbertura() {
		return dtAbertura;
	}
	public void setDtAbertura(Date dtAbertura) {
		this.dtAbertura = dtAbertura;
	}
	public void setDtAbertura(java.util.Date dtAbertura) {
		if(dtAbertura != null){
			this.dtAbertura = new Date();
			this.dtAbertura.setTime(dtAbertura.getTime());
		}
	}
	public void setDtAbertura(java.sql.Date dtAbertura) {
		if(dtAbertura != null){
			this.dtAbertura = new Date();
			this.dtAbertura.setTime(dtAbertura.getTime());
		}
	}
	public Date getDtFechamento() {
		return dtFechamento;
	}
	public void setDtFechamento(Date dtFechamento) {
		this.dtFechamento = dtFechamento;
	}
	public void setDtFechamento(java.sql.Date dtFechamento) {
		if(dtFechamento != null){
			this.dtFechamento = new Date();
			this.dtFechamento.setTime(dtFechamento.getTime());
		}
	}
	public TipoCausa getTipoCausa() {
		return tipoCausa;
	}
	public void setTipoCausa(TipoCausa tipoCausa) {
		this.tipoCausa = tipoCausa;
	}
	public TipoCobranca getTipoCobranca() {
		return tipoCobranca;
	}
	public void setTipoCobranca(TipoCobranca tipoCobranca) {
		this.tipoCobranca = tipoCobranca;
	}
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public Forum getForum() {
		return forum;
	}
	public void setForum(Forum forum) {
		this.forum = forum;
	}
	public List<Titulo> getListaTitulos() {
		return listaTitulos;
	}
	public void setListaTitulos(List<Titulo> listaTitulos) {
		this.listaTitulos = listaTitulos;
	}
	public List<Advogado> getAdvogadosEnvolvidos() {
		return advogadosEnvolvidos;
	}
	public void setAdvogadosEnvolvidos(List<Advogado> advogadosEnvolvidos) {
		this.advogadosEnvolvidos = advogadosEnvolvidos;
	}
	public List<Processo> getProcessosRelacionados() {
		return processosRelacionados;
	}
	public void setProcessosRelacionados(List<Processo> processosRelacionados) {
		this.processosRelacionados = processosRelacionados;
	}
	
	@Override
	public String toString() {
		return super.toString() + " | nrProcesso: "+nrProcesso+" - txContrato: "+txContrato+" - dtAbertura: "+  dtAbertura+" - dtFechamento: "+  dtFechamento+" - dsProcesso: "+  dsProcesso;
	}
}
